草庐IT

python shuffle算法性能

全部标签

java - AppDynamics(性能监控工具)会降低我的生产应用程序的速度吗?

是否可以在生产环境中部署性能监控工具-AppDynamics?要监视的应用程序是标准的Java/J2EEWeb应用程序。我从未使用过AppDynamics,我担心它实际上可能会减慢我的应用程序。有人在生产中使用过AppDynamics吗?或者它应该只在测试环境中使用。 最佳答案 完全披露:我目前在AppDynamics工作。AppDynamics专为大批量生产环境而设计,但在生产环境和非生产环境中同样表现出色。它目前正在Netflix、ExactTarget、Edmunds和许多其他公司的一些世界上最大的任务关键型应用程序环境中运行

java - 提高 BigDecimal 到双转换的性能

这是BigDecimal.doubleValue()的Jdk7-b147版本publicdoubledoubleValue(){if(scale==0&&intCompact!=INFLATED)return(double)intCompact;//Somewhatinefficient,butguaranteedtowork.returnDouble.parseDouble(this.toString());}他们承认这种方式效率低下!有没有比使用这种方法更好/更快的方法? 最佳答案 没有更好的方法可以将BigDecimal转换为

java - 自己学习算法,如何在java中实现元组?

我正在自学算法,如果我的标题不正确,我很抱歉!我不明白如何在Java中实现它。ifx=0:return(q,r)=(0,0)(q,r)=divide(⌊x/2⌋,y)q=2·q,r=2·rifxisodd:r=r+1ifr≥y:r=r−y,q=q+1return(q,r)我不知道如何用Java实现以下部分。(q,r)=(0,0)(q,r)=divide(⌊x/2⌋,y)return(q,r) 最佳答案 虽然Java缺乏对元组的内置支持,但好消息是您不必使用元组来实现此算法,返回值除外。两个常规int变量r和q就可以了。//(q,r)

java - Cassandra 批量查询与单次插入性能

我使用Cassandrajava驱动程序。我每秒收到150k个请求,我将这些请求插入到具有不同分区键的8个表中。我的问题是哪种方法更好:批量插入这些表一个一个插入。我问这个问题是因为,考虑到我的请求大小(150k),批处理听起来是更好的选择,但因为所有表都有不同的分区键,批处理看起来很昂贵。 最佳答案 请从以下链接查看我的回答:Cassandrabatchqueryperformanceontableshavingdifferentpartitionkeys批处理不是为了提高性能。它们用于确保原子性和隔离性。Batchingcanb

java - 使用 try-catch over if 条件以在 java 中以最小的性能影响安全地设置值

在这里,我的主要目标是安全地设置值,而不会对性能(速度、内存、CPU等)产生影响。我有一个愚蠢的选择(风格不佳)也在下面提到。那么,最好的方法是什么?选项1?选项2?还是另一个?选项1:if(animalData!=null&&animalData.getBreedData()!=null&&dogx.getBreed()!=null&&dogx.getBreed().getBreedCode()!=null&&animalData.getBreedData().get(dogx.getBreed().getBreedCode())!=null){dogx.getBreed().set

java - string.replaceAll() 性能是否受到字符串不变性的影响?

假设我在替换了1,000个匹配实例的大字符串上调用了replaceAll()。这是否意味着由于字符串不可变性而在过程中创建并重新分配了1,000个字符串?有没有更快的替代方案? 最佳答案 如果你深入研究String,您会看到它将replaceAll()委托(delegate)给Pattern&Matcher和Matcher.replaceAll()使用StringBuilder来存储最终返回的值。所以不,String.replaceAll()不会创建超过少量的对象。 关于java-str

java - 哪种加密算法可用于加密存储在磁盘上的文件?

我在文件中有一些文本。我想加密此文件,以便最终用户无法读取或写入此文件,但应用程序可以读取它。应用程序中可以存储secret,因为它以另一种方式得到保护。什么类型的加密支持这些要求?我在想AES。我对加密知之甚少,正在寻找一个起点。算法或框架建议会很棒。最后一点,代码是在Windows和Linux环境上运行的Java。 最佳答案 由于您已将帖子标记为“Java”——我建议您查看“JavaCryptographyExtension”(JCE)。从J2SE1.4开始,它就与SDK和JRE捆绑在一起。当然,一个必要的例子和overview

java - 线程数和 Java 应用程序性能

您好:我有一个多线程Java应用程序。当前线程大小已经是100。我们目前使用的是4核CPU。但在不久的将来,CPU核心将增加一倍,甚至达到32核。为了充分利用内核,我们需要增加线程池的大小。但是您可能知道(也许我错了),Java在有10000个线程时很好,但是当线程为200、500、1000个线程时可能会出现性能问题。那么我们是否应该使用其他编程语言,例如scala。我的担心有道理吗? 最佳答案 使用现代JVM,Java进程可以创建操作系统允许的任意数量的线程。您的应用程序能否充分利用这些线程取决于您的应用程序的设计。如果可伸缩性是

java - 对于不能全部放入内存的大多数排序数据的良好排序算法?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。如果给你:一定量的数据内存大小为数据大小的一半部分数据已排序您不知道排序数据的大小。你会选择哪种排序算法?我在插入和快速排序之间争论不休。我知道插入排序的最佳情况是O(n),但最坏情况是O(n2)。另外,考虑到内存有限,我会把数据分成两部分,对每一部分进行快速排序,然后将所有内容合并在一起。拆分数据需要O(n)时间,合并数据需要O(n)时间,使用快速排序

java - Log4j 日志会降低应用程序性能吗?

日志记录会降低应用程序性能吗?以及如何限制在日志文件中打印display-tags日志?例如。我的日志文件有以下日志[2012-06-2015:52:06,290]org.displaytag.tags.TableTagisFirstIteration684-[data]firstiteration=true(rownumber=1)[2012-06-2015:52:06,290]org.displaytag.tags.TableTagisFirstIteration684-[data]firstiteration=true(rownumber=1)[2012-06-2015:52:0